package cn.edu.jsu.official.pojo.dto;

import cn.edu.jsu.official.serializer.DateSerializer;
import com.alibaba.fastjson.annotation.JSONField;
import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import org.bson.types.ObjectId;
import org.springframework.data.annotation.Id;
import org.springframework.data.mongodb.core.mapping.Document;

import java.util.Date;

/**
 * @author Mo
 * @createTime 2022/3/1 17:08
 * @description
 */
@Data
@Document(collection = "member")
public class MemberInfo{
    @Id
    @ApiModelProperty("成员Id")
    private String memberId;
    @ApiModelProperty("成员姓名")
    private String memberName;
    @ApiModelProperty("院系")
    private String department;
    @ApiModelProperty("年级专业")
    private String major;
    @ApiModelProperty("成员介绍")
    private String memberIntroduction;

    @ApiModelProperty("加入日期")
    @JSONField(serializeUsing = DateSerializer.class, deserializeUsing = DateSerializer.class)
    @JsonFormat(locale = "zh", timezone = "GMT+8", pattern = "yyyy-MM-dd")
    private Date joinDate;
    /**
     * 1为毕业
     * 0为未毕业
     */
    @ApiModelProperty("是否毕业")
    private Integer isGraduated;
    @ApiModelProperty("毕业去向")
    private String graduationDestination;
    @ApiModelProperty("个人技术栈")
    private String personalTechStack;
    @ApiModelProperty("个人成就")
    private String personalAchievement;
    @ApiModelProperty("成员图片Id")
    private ObjectId memberImageId;
    @ApiModelProperty("是否被展示")
    private Integer isShown;
    /**
     * 1为现役队员
     * 0为退伍队员
     */
    @ApiModelProperty("是否服役")
    private Integer isActive;

    public String getMemberId() {
        return memberId;
    }

    public void setMemberId(String memberId) {
        this.memberId = memberId;
    }

    public String getMemberName() {
        return memberName;
    }

    public void setMemberName(String memberName) {
        this.memberName = memberName;
    }

    public String getDepartment() {
        return department;
    }

    public void setDepartment(String department) {
        this.department = department;
    }

    public String getMajor() {
        return major;
    }

    public void setMajor(String major) {
        this.major = major;
    }

    public String getMemberIntroduction() {
        return memberIntroduction;
    }

    public void setMemberIntroduction(String memberIntroduction) {
        this.memberIntroduction = memberIntroduction;
    }

    public Date getJoinDate() {
        return joinDate;
    }

    public void setJoinDate(Date joinDate) {
        this.joinDate = joinDate;
    }

    public Integer getIsGraduated() {
        return isGraduated;
    }

    public void setIsGraduated(Integer isGraduated) {
        this.isGraduated = isGraduated;
    }

    public String getGraduationDestination() {
        return graduationDestination;
    }

    public void setGraduationDestination(String graduationDestination) {
        this.graduationDestination = graduationDestination;
    }

    public String getPersonalTechStack() {
        return personalTechStack;
    }

    public void setPersonalTechStack(String personalTechStack) {
        this.personalTechStack = personalTechStack;
    }

    public String getPersonalAchievement() {
        return personalAchievement;
    }

    public void setPersonalAchievement(String personalAchievement) {
        this.personalAchievement = personalAchievement;
    }

    public ObjectId getMemberImageId() {
        return memberImageId;
    }

    public void setMemberImageId(ObjectId memberImageId) {
        this.memberImageId = memberImageId;
    }

    public Integer getIsShown() {
        return isShown;
    }

    public void setIsShown(Integer isShown) {
        this.isShown = isShown;
    }

    public Integer getIsActive() {
        return isActive;
    }

    public void setIsActive(Integer isActive) {
        this.isActive = isActive;
    }
}
